Hi Scott,
Regarding:
#1 - You shouldn't need another thread. Normally you would add this loop at the end of your INIT Program.
#2/3 - The function that distributes the output (A) to the 3 coils at phase angle F is:
Write3PH(ch, A, F); // Drive motor at phase angle
F is not in units of degrees or radians, rather it is in fractions of a cycle (ie 0.5 -> 180degrees).
Do you understand this? Do you understand that if you energize the coils in some constant manner the motor will tend to seek a spot where there is zero torque (like a stepper motor). If there were any torque the motor would accelerate and not hold still. Maximum torque would be 1/4 cycle away.
I find it too difficult to think everything through rigorously. If you think you can go ahead. I would just wire up the motor phases randomly. Also wire up the Halls randomly. Then rotate the motor very slowly like a stepper by energizing the coils and record the Hall sequence. Then put that sequence into the table. The Table is used in a way where a combination of Hall sensors maps to a rotor angle,
You could use the Auto Phase Find program to rotate the motor slowly like a stepper.
#4 Certainly.
HTH
Regards
TK